<?php namespace Admin\Controller; 
//引入Article模型
use Common\Model\Article;
//导入分类模型
use Common\Model\Category;
//导入标签模型
use Common\Model\ArcTag;

//文章控制器
class ArticleController extends CommonController{
//	成员属性
	private $cateModel;
	private $db;
	
//	构造函数
	public function __init(){
		
//		实例化这个文章类
		$this->db=new Article;
//		实例化这个分类的类
		$this->cateModel=new Category;
//		继承父级的构造函数
		parent::__init();
	}
	
//	添加文章方法
	public function add(){
//		判断是不是POST提交
		if(IS_POST){
//			p($_FILES);die;
//			调用这个类里面的方法
			$result=$this->db->store();
//			p($result);die;
//			返回的是不是真
			if(!$result){
//				如果是假,就调用这个类里面的错误信息
				View::error($this->db->getError());
			}else{
//				是真就返回添加成功
				View::success('添加成功');
			}
		}
//		添加分类
//		获取这个表里面的全部
		$catedata=$this->cateModel->get();
//		指定的字段名显示为树枝型
		$catedata=Data::tree($catedata,'cname');
//		分配数据
		View::with('catedata',$catedata);
		
//		获取标签
//		先获取这个标签表全部数据
		$tagdata=Db::table('tag')->get();
//		分配数据
		View::with('tagdata',$tagdata);
//		载入模板
		View::make();
	}
	
//	首页列表
	public function index(){
		
//		打印常量，php里面的所有的常量
//		$data=get_defined_constants('user');
//		p($data['user']);die;


//		分页
//		获取这个字段的总条数
		$allnum=$this->db->where('is_recycle',0)->count();
//		进行配置分页数据,row是每页几条
		$page=Page::row(2)->make($allnum);
//		关联表
//		关联文章分类表，field指定获取的字段，排序，limit分页截取的方法，并且不再回收站的数据，获取所有
		$data=$this->db->join('category','category_cid','=','cid')->field('aid','title','sendtime','cname')->orderBy('sendtime','DESC')->limit(Page::limit())->where('is_recycle',0)->get();
		
//		分配分页数据
		View::with('page',$page);
		
//		分配数据
		View::with('data',$data);
//		载入模板
		View::make();
	}
	
//	编辑方法
	public function edit(){
//		判断是不是POST传输
		if(IS_POST){
//			调用这个类里面的方法
			$result=$this->db->edit();
//			判断验证返回的真或假
			if(!$result){
				View::error($this->db->getError());
			}else{
				View::success('编辑成功','index');
			}
		}
//		获取GET过来的aid，intval代表取整
		$aid=Q('get.aid',0,'intval');
		
//		获取原数据
//		关联文章表和文章内容表
		$oldData=$this->db->join('article_data','aid','=','article_aid')->where('aid',$aid)->find();
//		分配数据
		View::with('oldData',$oldData);
		
//		获取分类表里面的所有数据
		$cateData=$this->cateModel->get();
//		指定的字段为树形结构的显示
		$cateData=Data::tree($cateData,'cname');
//		分配数据
		View::with('cateData',$cateData);
		
//		获取标签表，标签内所有数据
		$tagData=Db::table('tag')->get();
//		分配数据
		View::with('tagData',$tagData);
		

//		实例化中间表
		$arcTagModel=new ArcTag;
//		获取文章标签所对应的标签信息,lists表示那一列
		$tags=$arcTagModel->where('article_aid',$aid)->lists('tag_tid');
//		分配数据
		View::with('tags',$tags);
//		载入模板
		View::make();
	}
	
//		删除到回收站
		public function delhui(){
//			获取get过来的aid
			$aid=Q('get.aid',0,'intval');
//			跟数据库文章表中的aid对应的一条，更新到回收站中，1是在回收站，0是不再回收站
			$result=$this->db->where('aid',$aid)->update(array('is_recycle'=>1));
//			判断是否删除到回收站中
			if(!$result){
				View::error('删除失败');
			}else{
				View::success('删除成功到回收站');
			}
		}

//		回收站
		public function recycle(){
//			获取总条数，count是总数和
			$allnum=$this->db->where('is_recycle',1)->count();
//			配置分页数据
			$page=Page::row(2)->make($allnum);
//			join文章表和分类表
			$data=$this->db->join('category','category_cid','=','cid')->field('aid','title','sendtime','cname')->orderBy('sendtime','DESC')->limit(Page::limit())->where('is_recycle',1)->get();
			
//			分配分页类
			View::with('page',$page);
			
//			分配所有数据
			View::with('data',$data);
//			引模板
			View::make();
		}
		
//		删除
		public function del(){
//		调用这个类里面的删除方法
		$result=$this->db->del();
//		判断返回的bool值
		if(!$result){
			View::error('删除失败');
		}else{
			View::success('删除成功');
		}
		
		}
}



























